IDependency Class Reference
[Version 4.0]

simple dependency between objects. More...

Inheritance diagram for IDependency:
Inheritance graph
[legend]

List of all members.

Classes

class  DeferChanges

Public Member Functions

virtual void addDependency (CBaseObject *obj)
virtual void removeDependency (CBaseObject *obj)
virtual void changed (IdStringPtr message)
virtual void deferChanges (bool state)

Protected Types

typedef std::set< IdStringPtrDeferedChangesSet
typedef std::list< CBaseObject * > DependentList

Protected Member Functions

 IDependency ()
virtual ~IDependency ()

Static Protected Member Functions

static void rememberObject (CBaseObject *obj)
static void forgetObject (CBaseObject *obj)

Protected Attributes

int32_t deferChangeCount
DeferedChangesSet deferedChanges
DependentList dependents

Detailed Description

simple dependency between objects.

You can inject this implementation into CBaseObjects whenever you need other CBaseObjects to be informed about changes to that class instance. Note that you need to handle recursions yourself and that no reference counting is done and that you must make sure that the dependent objects are alife while added as dependent.


Member Typedef Documentation

typedef std::set<IdStringPtr> DeferedChangesSet [protected]
typedef std::list<CBaseObject*> DependentList [protected]

Constructor & Destructor Documentation

IDependency (  )  [inline, protected]
~IDependency (  )  [inline, protected, virtual]

Member Function Documentation

void addDependency ( CBaseObject obj  )  [inline, virtual]

add a dependent object

void changed ( IdStringPtr  message  )  [inline, virtual]

notify dependent objects of change with message.

void deferChanges ( bool  state  )  [inline, virtual]

defer changes until later. can be nested. If you use this, you must make sure that all message pointers are valid the whole time.

static void forgetObject ( CBaseObject obj  )  [inline, static, protected]
static void rememberObject ( CBaseObject obj  )  [inline, static, protected]
void removeDependency ( CBaseObject obj  )  [inline, virtual]

remove a dependent object.


Member Data Documentation

int32_t deferChangeCount [protected]

The documentation for this class was generated from the following file:

Generated on Fri Nov 22 11:09:58 2013 for VSTGUI by  doxygen 1.6.1